1. Field of the Invention
The present invention relates to multi-processor computing systems and more particularly this invention relates to multi-processor computing systems which employ synchronization points to efficiently distribute tasks among independent processors.
2. Background and Summary of the Invention
In the present invention, a switching system operates in conjunction with a multi-processor system so that a task packet may be executed as quickly as possible. Some tasks of the task packet are dependent on one another, i.e. a sequential task is based on the result of a previously processed task in contrast, other tasks, are completely independent of one another. An example of this is found in the initialization of transient switching-oriented data after a system recovery (restart) of a switching system. In such a situation, transient, port-related data must be updated or, respectively, initialized first on the basis of current system data before clear bands for trunks can be set up. Other restart tasks such as initialization of traffic measurement tables can be executed completely independently of other tasks.
The size and runtime of the individual tasks is known for some tasks, however, the runtime of other tasks is highly dependent upon the current system configuration which is often difficult to predict if it can be predicted at all. Factors which affect runtime include the size of the overall system and the momentary system condition of field components.
In a multi-processor system having a common data memory region (common memory), optimum utilization of all available processors for the fastest possible execution of a task packet is desired. In order to accomplish this result, the execution of individual tasks which are dependent on one another is coordinated such that no processor of the multi-processor system is unnecessarily in a wait state. The present invention employs scheduling at synchronization points which is independently executed by the processors. In this system, only a master processor which executes a chronological monitoring at a synchronization point has a special priority, each remaining processor has the same priority. This configuration allows especially large individual tasks to be subdivided into sub-tasks which can be executed in parallel fashion by a number of processors. Thus, optimum division and utilization of the available processor capacity can be achieved during processing depending on the size of a parallel procedure which is divided into sub-tasks. Even in the worst case, this design also assures minimum delay in the processing of a task packet when a processor fails during execution of an individual task.